WORST_CASE(?,O(n^2)) Solution: --------- "#0" :: [] -(0)-> "A"(0, 0) "#0" :: [] -(0)-> "A"(1, 1) "#0" :: [] -(0)-> "A"(0, 1) "#0" :: [] -(0)-> "A"(16, 0) "#0" :: [] -(0)-> "A"(128, 0) "#0" :: [] -(0)-> "A"(2, 0) "#0" :: [] -(0)-> "A"(3, 0) "#0" :: [] -(0)-> "A"(8, 0) "#EQ" :: [] -(0)-> "A"(0, 0) "#EQ" :: [] -(0)-> "A"(0, 1) "#GT" :: [] -(0)-> "A"(0, 0) "#GT" :: [] -(0)-> "A"(1, 0) "#LT" :: [] -(0)-> "A"(0, 0) "#LT" :: [] -(0)-> "A"(0, 1) "#abs" :: ["A"(0, 0)] -(1)-> "A"(0, 0) "#cklt" :: ["A"(0, 0)] -(0)-> "A"(1, 0) "#compare" :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) "#false" :: [] -(0)-> "A"(1, 0) "#less" :: ["A"(0, 0) x "A"(0, 0)] -(1)-> "A"(1, 0) "#neg" :: ["A"(0, 0)] -(0)-> "A"(0, 0) "#pos" :: ["A"(0, 0)] -(0)-> "A"(0, 0) "#pos" :: ["A"(0, 0)] -(1)-> "A"(1, 0) "#pos" :: ["A"(1, 0)] -(2)-> "A"(2, 1) "#pos" :: ["A"(2, 0)] -(1)-> "A"(1, 2) "#pos" :: ["A"(1, 0)] -(0)-> "A"(0, 1) "#s" :: ["A"(0, 0)] -(0)-> "A"(0, 0) "#s" :: ["A"(2, 0)] -(1)-> "A"(1, 1) "#s" :: ["A"(2, 0)] -(2)-> "A"(2, 0) "#s" :: ["A"(8, 0)] -(4)-> "A"(4, 4) "#s" :: ["A"(8, 0)] -(8)-> "A"(8, 0) "#s" :: ["A"(16, 0)] -(8)-> "A"(8, 8) "#s" :: ["A"(4, 0)] -(2)-> "A"(2, 2) "#s" :: ["A"(4, 0)] -(4)-> "A"(4, 0) "#s" :: ["A"(32, 0)] -(16)-> "A"(16, 16) "#s" :: ["A"(64, 0)] -(32)-> "A"(32, 32) "#s" :: ["A"(128, 0)] -(64)-> "A"(64, 64) "#s" :: ["A"(3, 0)] -(1)-> "A"(1, 2) "#s" :: ["A"(3, 0)] -(3)-> "A"(3, 0) "#s" :: ["A"(4, 0)] -(3)-> "A"(3, 1) "#s" :: ["A"(5, 0)] -(4)-> "A"(4, 1) "#s" :: ["A"(6, 0)] -(5)-> "A"(5, 1) "#s" :: ["A"(7, 0)] -(6)-> "A"(6, 1) "#s" :: ["A"(8, 0)] -(7)-> "A"(7, 1) "#s" :: ["A"(3, 0)] -(2)-> "A"(2, 1) "#true" :: [] -(0)-> "A"(1, 0) "#unit" :: [] -(0)-> "A"(0, 0) "::" :: ["A"(0, 0) x "A"(9, 1)] -(8)-> "A"(8, 1) "::" :: ["A"(0, 0) x "A"(8, 2)] -(6)-> "A"(6, 2) "::" :: ["A"(0, 0) x "A"(19, 10)] -(9)-> "A"(9, 10) "::" :: ["A"(0, 0) x "A"(19, 13)] -(6)-> "A"(6, 13) "::" :: ["A"(0, 0) x "A"(4, 2)] -(2)-> "A"(2, 2) "::" :: ["A"(0, 0) x "A"(2, 1)] -(1)-> "A"(1, 1) "::" :: ["A"(0, 0) x "A"(3, 1)] -(2)-> "A"(2, 1) "::" :: ["A"(0, 0) x "A"(2, 2)] -(0)-> "A"(0, 2) "::" :: ["A"(0, 0) x "A"(27, 13)] -(14)-> "A"(14, 13) "::" :: ["A"(0, 0) x "A"(54, 27)] -(27)-> "A"(27, 27) "::" :: ["A"(0, 0) x "A"(108, 54)] -(54)-> "A"(54, 54) "::" :: ["A"(0, 0) x "A"(216, 108)] -(108)-> "A"(108, 108) "::" :: ["A"(0, 0) x "A"(432, 216)] -(216)-> "A"(216, 216) "::" :: ["A"(0, 0) x "A"(648, 216)] -(432)-> "A"(432, 216) "::" :: ["A"(0, 0) x "A"(1296, 648)] -(648)-> "A"(648, 648) "::" :: ["A"(0, 0) x "A"(2592, 1296)] -(1296)-> "A"(1296, 1296) "::" :: ["A"(0, 0) x "A"(5184, 2592)] -(2592)-> "A"(2592, 2592) "::" :: ["A"(0, 0) x "A"(8128, 2944)] -(5184)-> "A"(5184, 2944) "insert" :: ["A"(0, 0) x "A"(8, 1)] -(5)-> "A"(2, 1) "insert#1" :: ["A"(8, 1) x "A"(0, 0)] -(3)-> "A"(2, 1) "insert#2" :: ["A"(1, 0) x "A"(0, 0) x "A"(0, 0) x "A"(8, 1)] -(7)-> "A"(1, 1) "insertD" :: ["A"(0, 0) x "A"(7, 2)] -(3)-> "A"(1, 2) "insertD#1" :: ["A"(6, 2) x "A"(0, 0)] -(1)-> "A"(0, 2) "insertD#2" :: ["A"(1, 0) x "A"(0, 0) x "A"(0, 0) x "A"(8, 2)] -(5)-> "A"(0, 2) "insertionsort" :: ["A"(9, 10)] -(3)-> "A"(0, 1) "insertionsort#1" :: ["A"(9, 10)] -(1)-> "A"(0, 1) "insertionsortD" :: ["A"(13, 13)] -(3)-> "A"(2, 2) "insertionsortD#1" :: ["A"(6, 13)] -(1)-> "A"(1, 2) "nil" :: [] -(0)-> "A"(8, 1) "nil" :: [] -(0)-> "A"(6, 2) "nil" :: [] -(0)-> "A"(9, 10) "nil" :: [] -(0)-> "A"(6, 13) "nil" :: [] -(0)-> "A"(4, 2) "nil" :: [] -(0)-> "A"(2, 2) "nil" :: [] -(0)-> "A"(0, 1) "nil" :: [] -(0)-> "A"(1, 2) "nil" :: [] -(0)-> "A"(8128, 2944) "testInsertionsort" :: ["A"(0)] -(10815)-> "A"(0, 0) "testInsertionsortD" :: ["A"(0)] -(10815)-> "A"(0, 0) "testList" :: ["A"(0, 0)] -(10811)-> "A"(13, 13) Cost Free Signatures: --------------------- "#0" :: [] -(0)-> "A"_cf(0, 0) "#EQ" :: [] -(0)-> "A"_cf(0, 0) "#EQ" :: [] -(0)-> "A"_cf(0, 1) "#GT" :: [] -(0)-> "A"_cf(0, 0) "#GT" :: [] -(0)-> "A"_cf(1, 0) "#LT" :: [] -(0)-> "A"_cf(0, 0) "#LT" :: [] -(0)-> "A"_cf(0, 1) "#cklt" :: ["A"_cf(0, 0)] -(0)-> "A"_cf(1, 0) "#cklt" :: ["A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "#compare" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "#false" :: [] -(0)-> "A"_cf(1, 0) "#false" :: [] -(0)-> "A"_cf(0, 0) "#less" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(1, 0) "#less" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "#neg" :: ["A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "#pos" :: ["A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "#s" :: ["A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "#true" :: [] -(0)-> "A"_cf(1, 0) "#true" :: [] -(0)-> "A"_cf(1, 1) "#true" :: [] -(0)-> "A"_cf(0, 0) "::" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "::" :: ["A"_cf(0, 0) x "A"_cf(1, 0)] -(1)-> "A"_cf(1, 0) "::" :: ["A"_cf(0, 0) x "A"_cf(3, 2)] -(1)-> "A"_cf(1, 2) "::" :: ["A"_cf(0, 0) x "A"_cf(2, 1)] -(1)-> "A"_cf(1, 1) "::" :: ["A"_cf(0, 0) x "A"_cf(10, 0)] -(10)-> "A"_cf(10, 0) "::" :: ["A"_cf(0, 0) x "A"_cf(8, 0)] -(8)-> "A"_cf(8, 0) "::" :: ["A"_cf(0, 0) x "A"_cf(7, 0)] -(7)-> "A"_cf(7, 0) "::" :: ["A"_cf(0, 0) x "A"_cf(14, 7)] -(7)-> "A"_cf(7, 7) "::" :: ["A"_cf(0, 0) x "A"_cf(6, 0)] -(6)-> "A"_cf(6, 0) "::" :: ["A"_cf(0, 0) x "A"_cf(5, 0)] -(5)-> "A"_cf(5, 0) "::" :: ["A"_cf(0, 0) x "A"_cf(11, 6)] -(5)-> "A"_cf(5, 6) "insert" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(1)-> "A"_cf(0, 0) "insert" :: ["A"_cf(0, 0) x "A"_cf(1, 0)] -(1)-> "A"_cf(1, 0) "insert" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "insert" :: ["A"_cf(0, 0) x "A"_cf(8, 0)] -(10)-> "A"_cf(8, 0) "insert#1" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(1)-> "A"_cf(0, 0) "insert#1" :: ["A"_cf(1, 0) x "A"_cf(0, 0)] -(1)-> "A"_cf(1, 0) "insert#1" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "insert#1" :: ["A"_cf(8, 0) x "A"_cf(0, 0)] -(10)-> "A"_cf(8, 0) "insert#2" :: ["A"_cf(1, 0) x "A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(0, 0)] -(1)-> "A"_cf(0, 0) "insert#2" :: ["A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(1, 0)] -(2)-> "A"_cf(1, 0) "insert#2" :: ["A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "insert#2" :: ["A"_cf(1, 0) x "A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(8, 0)] -(18)-> "A"_cf(8, 0) "insertD" :: ["A"_cf(0, 0) x "A"_cf(1, 0)] -(1)-> "A"_cf(1, 0) "insertD" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "insertD" :: ["A"_cf(0, 0) x "A"_cf(1, 0)] -(7)-> "A"_cf(1, 0) "insertD" :: ["A"_cf(0, 0) x "A"_cf(5, 0)] -(5)-> "A"_cf(5, 0) "insertD#1" :: ["A"_cf(1, 0) x "A"_cf(0, 0)] -(1)-> "A"_cf(1, 0) "insertD#1" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "insertD#1" :: ["A"_cf(1, 0) x "A"_cf(0, 0)] -(7)-> "A"_cf(1, 0) "insertD#1" :: ["A"_cf(5, 0) x "A"_cf(0, 0)] -(5)-> "A"_cf(5, 0) "insertD#2" :: ["A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(1, 0)] -(2)-> "A"_cf(1, 0) "insertD#2" :: ["A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "insertD#2" :: ["A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(1, 0)] -(8)-> "A"_cf(1, 0) "insertD#2" :: ["A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(0, 0) x "A"_cf(5, 0)] -(10)-> "A"_cf(5, 0) "insertionsort" :: ["A"_cf(0, 0)] -(1)-> "A"_cf(0, 0) "insertionsort" :: ["A"_cf(10, 0)] -(1)-> "A"_cf(8, 0) "insertionsort#1" :: ["A"_cf(0, 0)] -(1)-> "A"_cf(0, 0) "insertionsort#1" :: ["A"_cf(10, 0)] -(1)-> "A"_cf(8, 0) "insertionsortD" :: ["A"_cf(7, 0)] -(1)-> "A"_cf(1, 0) "insertionsortD" :: ["A"_cf(6, 0)] -(0)-> "A"_cf(5, 0) "insertionsortD#1" :: ["A"_cf(7, 0)] -(1)-> "A"_cf(1, 0) "insertionsortD#1" :: ["A"_cf(6, 0)] -(0)-> "A"_cf(5, 0) "nil" :: [] -(0)-> "A"_cf(0, 0) "nil" :: [] -(0)-> "A"_cf(1, 1) "nil" :: [] -(0)-> "A"_cf(1, 0) "nil" :: [] -(0)-> "A"_cf(3, 2) "nil" :: [] -(0)-> "A"_cf(2, 1) "nil" :: [] -(0)-> "A"_cf(10, 0) "nil" :: [] -(0)-> "A"_cf(8, 0) "nil" :: [] -(0)-> "A"_cf(10, 1) "nil" :: [] -(0)-> "A"_cf(8, 1) "nil" :: [] -(0)-> "A"_cf(7, 0) "nil" :: [] -(0)-> "A"_cf(14, 7) "nil" :: [] -(0)-> "A"_cf(6, 0) "nil" :: [] -(0)-> "A"_cf(5, 0) "nil" :: [] -(0)-> "A"_cf(11, 6) "nil" :: [] -(0)-> "A"_cf(5, 1) Base Constructors: ------------------ "\"#0\"_A" :: [] -(0)-> "A"(1, 0) "\"#0\"_A" :: [] -(0)-> "A"(0, 1) "\"#EQ\"_A" :: [] -(1)-> "A"(1, 0) "\"#EQ\"_A" :: [] -(0)-> "A"(0, 1) "\"#GT\"_A" :: [] -(0)-> "A"(1, 0) "\"#GT\"_A" :: [] -(1)-> "A"(0, 1) "\"#LT\"_A" :: [] -(0)-> "A"(1, 0) "\"#LT\"_A" :: [] -(0)-> "A"(0, 1) "\"#false\"_A" :: [] -(0)-> "A"(1, 0) "\"#false\"_A" :: [] -(1)-> "A"(0, 1) "\"#neg\"_A" :: ["A"(1, 0)] -(0)-> "A"(1, 0) "\"#neg\"_A" :: ["A"(1, 1)] -(0)-> "A"(0, 1) "\"#pos\"_A" :: ["A"(0, 0)] -(1)-> "A"(1, 0) "\"#pos\"_A" :: ["A"(1, 0)] -(0)-> "A"(0, 1) "\"#s\"_A" :: ["A"(1, 0)] -(1)-> "A"(1, 0) "\"#s\"_A" :: ["A"(1, 0)] -(0)-> "A"(0, 1) "\"#true\"_A" :: [] -(0)-> "A"(1, 0) "\"#true\"_A" :: [] -(0)-> "A"(0, 1) "\"#unit\"_A" :: [] -(1)-> "A"(1, 0) "\"#unit\"_A" :: [] -(1)-> "A"(0, 1) "\"::\"_A" :: ["A"(0, 0) x "A"(1, 0)] -(1)-> "A"(1, 0) "\"::\"_A" :: ["A"(0, 0) x "A"(1, 1)] -(0)-> "A"(0, 1) "\"nil\"_A" :: [] -(0)-> "A"(1, 0) "\"nil\"_A" :: [] -(0)-> "A"(0, 1)